package 强化训练;

import java.util.Scanner;

public class 连续子数组的最大和 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] arr = new int[N];
        for(int i = 0;i < arr.length ;i++){
            arr[i] = sc.nextInt();
        }
        long res = arr[0];
        long tem = arr[0];
        for(int i = 1; i < arr.length;i++){
            if(tem > 0){
                if(tem + arr[i] <= arr[i]){//如果前面数字之和小于当前数字，tem 就等于当前数字
                    tem = arr[i];
                }else{
                    tem += arr[i];
                }
            }else{
                tem = arr[i];
            }
            res = res > tem ? res : tem;
        }
        System.out.println(res);
    }
}
